using System.Reflection;
using System.Utility.System.Utility.Resources;

namespace System.Utility.Data.Validation
{
	public class NumericValidator : Validator
	{
		private int _MinValue;

		private int _MaxValue;

		public int MaxValue
		{
			get
			{
				return _MaxValue;
			}
		}

		public int MinValue
		{
			get
			{
				return _MinValue;
			}
		}

		public NumericValidator(string errorMsg, string text, PropertyInfo propertyInfo, int minValue, int maxValue) : base(errorMsg, text, propertyInfo)
		{
			if (string.IsNullOrEmpty(errorMsg))
			{
				ErrorMsg = string.Format(DefaultErrorMessages.Compare, text, minValue, maxValue);
			}
			_MinValue = minValue;
			_MaxValue = maxValue;
		}

		protected override bool Validation(object value)
		{
			decimal num;
			bool flag;
			if (value == null)
			{
				flag = true;
			}
			else if (!decimal.TryParse(value.ToString(), out num))
			{
				flag = true;
			}
			else
			{
				flag = (num < _MinValue ? false : num <= _MaxValue);
			}
			return flag;
		}
	}
}